#include <stdio.h>
#include "ofc/DRndDist.h"
#include "ofc/DMRnd.h"

int main(int argc, char *argv[])
{
  DMRnd *rnd = [DMRnd new];
  
                                       // Uniform distributed random number
  printf("Random number, uniform distributed, range 0.0..10.0    : %f.\n", 
    [DRndDist nextUniform :rnd :0.0 :10.0]);

                                       // Normal distributed random number
  printf("Random number, normal distributed,  range 0.0..10.0    : %f.\n",
    [DRndDist nextNormal :rnd :0.0 :10.0]);

                                       // Exponential distributed random number
  printf("Random number, exponential distributed, mean 5.0       : %f.\n",
    [DRndDist nextExponential :rnd :5.0]);

                                       // Gamma distributed random number
  printf("Random number, gamma distributed, alpha 2.0, beta 3.0  : %f.\n",
    [DRndDist nextGamma :rnd :2.0 :3.0]);

                                       // Beta distributed random number
  printf("Random number, beta distributed, alpha 2.0, beta 3.0   : %f.\n",
    [DRndDist nextBeta :rnd :2.0 :3.0]);

                                       // Binomial distributed random number
  printf("Random number, binomial distributed, prob .5 runs 10   : %u.\n",
    [DRndDist nextBinomial :rnd :0.5 :10]);

                                       // Poisson distributed random number
  printf("Random number, poisson distributed, mu 5.0             : %u.\n",
    [DRndDist nextPoisson :rnd :5.0]);

                                       // Weibull distributed random number
  printf("Random number, weibull distributed, alpha 2.0, beta 3.0: %f.\n",
    [DRndDist nextWeibull :rnd :2.0 :3.0]);

  [rnd free];                          // Cleanup

  return 0;
}
